From: Debarshi Ray Date: Thu, 6 Sep 2012 09:45:30 +0000 (+0200) Subject: messageTray: A variable to indicate that the close button was clicked X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5920 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=ec529287364cc40419bd0e69fc01aa585b940a45;p=gnome-shell.git messageTray: A variable to indicate that the close button was clicked Otherwise critical resident notifications can not be closed by clicking the close button. https://bugzilla.gnome.org/show_bug.cgi?id=683472 --- diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 329b74b5a..42ce76a5d 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -1451,6 +1451,7 @@ const MessageTray = new Lang.Class({ this._pointerInKeyboard = false; this._summaryState = State.HIDDEN; this._pointerInSummary = false; + this._notificationClosed = false; this._notificationState = State.HIDDEN; this._notificationTimeoutId = 0; this._notificationExpandedId = 0; @@ -1547,9 +1548,13 @@ const MessageTray = new Lang.Class({ _onCloseClicked: function() { if (this._notificationState == State.SHOWN) { + this._notificationClosed = true; this._notification.emit('done-displaying'); + if (!this._notification.resident) this._notification.destroy(); + + this._notificationClosed = false; } }, @@ -1913,7 +1918,7 @@ const MessageTray = new Lang.Class({ !(this._pointerInKeyboard && notificationExpanded); let notificationLockedOut = this._isScreenLocked && (this._notification && !this._notification.showWhenLocked); // TODO: how to deal with locked out notiifcations if want to keep showing notifications?! - let notificationMustClose = this._notificationRemoved || notificationLockedOut || (notificationExpired && this._userActiveWhileNotificationShown); + let notificationMustClose = this._notificationRemoved || notificationLockedOut || (notificationExpired && this._userActiveWhileNotificationShown) || this._notificationClosed; let canShowNotification = notificationsPending && this._summaryState == State.HIDDEN; if (this._notificationState == State.HIDDEN) {